A technology that migrates a process or software from a node to another node is called migration. As an example of the migration, there is live migration that reduces downtime of a process or software to be migrated to the extent that it becomes negligibly short, so as to perform migration without stopping the service. Specifically, the live migration is used to migrate a process between nodes on a server or to migrate a virtual machine (VM) on a hypervisor. The process is an execution unit for a program. The node is an execution unit for processing of executing a process.
For example, it is possible to perform load balancing between nodes by migrating a process from a heavily loaded node to a lightly loaded node by live migration. Further, for example, when a node is stopped due to, for example, maintenance, it is possible to increase the availability of a process that is operating on the node to be stopped by saving the process to another node.
The following first to third technologies are migration-related technologies (see, for example, Patent Documents 1 to 3).
In the first technology, before migration, a first virtual machine has an operating system and an application in a first private memory private to the first virtual machine. A communication queue of the first virtual machine resides in a shared memory shared by first and second computers or first and second logical partitionings (LPARs). The operating system and application are copied from the first private memory to the shared memory, and then, they are copied from the shared memory to a second private memory private to the first virtual machine in the second computer or second LPAR. The first virtual machine is resumed in the second computer or second LPAR.
According to a device of the second technology, a state of a page of a logical partition is automatically tracked so as to encourage a firmware migration in a logically partitioned environment. Using a table that has a plurality of entries corresponding to a plurality of page states, a process encourages a logical partition migration. When a logical partition is migrated, a state of each page is recorded and maintained in a table entry.
According to a device of the third technology, a switch is connected between a central processing unit (CPU) and input/outputs (I/Os). The switch includes a memory monitoring mechanism that monitors a memory writing and a dirty bit array that stores therein whether each page on a memory is dirty. The memory monitoring mechanism monitors a memory writing from an I/O to the CPU, determines, from an address of the memory writing, which page becomes dirty, and updates the dirty bit array. The dirty bit array stores therein dirty/not-dirty for each page, and can be accessed from a hypervisor as a continuous region.
Patent Document 1: Japanese Laid-open Patent Publication No. 2005-327279
Patent Document 2: Japanese Laid-open Patent Publication No. 2008-269000
Patent Document 3: International Publication Pamphlet No. WO 2012/063334
In live migration, a content of a memory assigned to a process to be migrated is transferred from a migration source node to a migration destination node. When such a transfer is performed while the process to be migrated is operating, the content of the memory to be transferred may be rewritten during the transfer. In this case, the transfer source and the transfer destination have different contents of the memory, so the process will not continue to be executed normally in the transfer destination. Thus, in live migration, a memory is transferred after a migration process is stopped, and the process is restarted in the transfer destination node after the completion of the transfer of the memory.
When a process to be migrated uses a large amount of memory space, it takes long to transfer a content of a memory. In migration, the process to be migrated is stopped during the transfer of the content of the memory. Thus, the process downtime is longer if the transfer time is longer.